package sv.gob.mh.dgii.model;

import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * CcSaldoAjuste generated by hbm2java
 */
@Entity
@Table(name = "CC_SALDO_AJUSTE", schema = "CTACTE")
@SequenceGenerator(name="SEQ_CC_SALDO_AJUSTE" , sequenceName="SEQ_CC_SALDO_AJUSTE")
public class CcSaldoAjuste implements java.io.Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 6936998418964397542L;
	private Long cajuste;
	private RcRuc rcRuc;
	private TbTransClase tbTransClase;
	private TbTransGrupo tbTransGrupo;
	private TbObligacion tbObligacion;
	private Date fpperiodo;
	private Double vimpuesto;
	private Double vmulta;
	private Double vinteres;
	private Date fhingreso;
	private Date fhModificacion;
	private String cusuario;
	private String sobservacion;
	private Integer bactiva;
	private Integer bsupervisa;
	private Long csolTecnico;
	private Date fpAplicacion;
	private String sdocumento;
	
	
	/**
	 * @return the fpAplicacion
	 */
	@Temporal(TemporalType.DATE)
	@Column(name = "FP_APLICACION", nullable = true )
	public Date getFpAplicacion() {
		return fpAplicacion;
	}

	/**
	 * @param fpAplicacion the fpAplicacion to set
	 */
	public void setFpAplicacion(Date fpAplicacion) {
		this.fpAplicacion = fpAplicacion;
	}

	@Column(name = "C_SOL_TECNICO", precision = 10, scale = 0)
	public Long getCsolTecnico() {
		return csolTecnico;
	}

	public void setCsolTecnico(Long csolTecnico) {
		this.csolTecnico = csolTecnico;
	}

	public CcSaldoAjuste() {
	}
	
	public CcSaldoAjuste(Long cajuste) {
		this.cajuste = cajuste;
	}

	public CcSaldoAjuste(Long cajuste, RcRuc rcRuc, TbTransClase tbTransClase,
			TbTransGrupo tbTransGrupo, TbObligacion tbObligacion,
			Date fpperiodo, Double vimpuesto, Double vmulta, Double vinteres) {
		this.cajuste = cajuste;
		this.rcRuc = rcRuc;
		this.tbTransClase = tbTransClase;
		this.tbTransGrupo = tbTransGrupo;
		this.tbObligacion = tbObligacion;
		this.fpperiodo = fpperiodo;
		this.vimpuesto = vimpuesto;
		this.vmulta = vmulta;
		this.vinteres = vinteres;
	}

	public CcSaldoAjuste(Long cajuste, RcRuc rcRuc, TbTransClase tbTransClase,
			TbTransGrupo tbTransGrupo, TbObligacion tbObligacion,
			Date fpperiodo, Double vimpuesto, Double vmulta, Double vinteres,
			Date fhingreso, String cusuario, String sobservacion,
			Integer bactiva, Integer bsupervisa) {
		this.cajuste = cajuste;
		this.rcRuc = rcRuc;
		this.tbTransClase = tbTransClase;
		this.tbTransGrupo = tbTransGrupo;
		this.tbObligacion = tbObligacion;
		this.fpperiodo = fpperiodo;
		this.vimpuesto = vimpuesto;
		this.vmulta = vmulta;
		this.vinteres = vinteres;
		this.fhingreso = fhingreso;
		this.cusuario = cusuario;
		this.sobservacion = sobservacion;
		this.bactiva = bactiva;
		this.bsupervisa = bsupervisa;
	}

	@Id
	@Column(name = "C_AJUSTE", unique = true, nullable = false, precision = 10, scale = 0)
	@GeneratedValue(strategy=GenerationType.AUTO, generator="SEQ_CC_SALDO_AJUSTE")
	public Long getCajuste() {
		return this.cajuste;
	}

	public void setCajuste(Long cajuste) {
		this.cajuste = cajuste;
	}

	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "NIT", nullable = false, updatable=false)
	public RcRuc getRcRuc() {
		return this.rcRuc;
	}

	public void setRcRuc(RcRuc rcRuc) {
		this.rcRuc = rcRuc;
	}

	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "C_CLASE_TRANS", nullable = false)
	public TbTransClase getTbTransClase() {
		return this.tbTransClase;
	}

	public void setTbTransClase(TbTransClase tbTransClase) {
		this.tbTransClase = tbTransClase;
	}

	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "C_GRUPO_TRANS", nullable = false )
	public TbTransGrupo getTbTransGrupo() {
		return this.tbTransGrupo;
	}

	public void setTbTransGrupo(TbTransGrupo tbTransGrupo) {
		this.tbTransGrupo = tbTransGrupo;
	}

	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "C_OBLIGACION", nullable = false )
	public TbObligacion getTbObligacion() {
		return this.tbObligacion;
	}

	public void setTbObligacion(TbObligacion tbObligacion) {
		this.tbObligacion = tbObligacion;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "FP_PERIODO", nullable = false )
	public Date getFpperiodo() {
		return this.fpperiodo;
	}

	public void setFpperiodo(Date fpperiodo) {
		this.fpperiodo = fpperiodo;
	}

	@Column(name = "V_IMPUESTO", nullable = false, precision = 13 )
	public Double getVimpuesto() {
		return this.vimpuesto;
	}

	public void setVimpuesto(Double vimpuesto) {
		this.vimpuesto = vimpuesto;
	}

	@Column(name = "V_MULTA", nullable = false, precision = 13 )
	public Double getVmulta() {
		return this.vmulta;
	}

	public void setVmulta(Double vmulta) {
		this.vmulta = vmulta;
	}

	@Column(name = "V_INTERES", nullable = false, precision = 13 )
	public Double getVinteres() {
		return this.vinteres;
	}

	public void setVinteres(Double vinteres) {
		this.vinteres = vinteres;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "FH_INGRESO" ,updatable=false)
	public Date getFhingreso() {
		return this.fhingreso;
	}

	public void setFhingreso(Date fhingreso) {
		this.fhingreso = fhingreso;
	}

	@Column(name = "C_USUARIO", length = 30  )
	public String getCusuario() {
		return this.cusuario;
	}

	public void setCusuario(String cusuario) {
		this.cusuario = cusuario;
	}
	
	@Column(name = "S_DOCUMENTO", length = 20  )
	public String getSdocumento() {
		return this.sdocumento;
	}

	public void setSdocumento(String sdocumento) {
		this.sdocumento =sdocumento;
	}

	@Column(name = "S_OBSERVACION" )
	public String getSobservacion() {
		return this.sobservacion;
	}

	public void setSobservacion(String sobservacion) {
		this.sobservacion = sobservacion;
	}

	@Column(name = "B_ACTIVA", precision = 1, scale = 0)
	public Integer getBactiva() {
		return this.bactiva;
	}

	public void setBactiva(Integer bactiva) {
		this.bactiva = bactiva;
	}

	@Column(name = "B_SUPERVISA", precision = 1, scale = 0)
	public Integer getBsupervisa() {
		return this.bsupervisa;
	}

	public void setBsupervisa(Integer bsupervisa) {
		this.bsupervisa = bsupervisa;
	}
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "FH_MODIFICA")
	public Date getFhModificacion() {
		return fhModificacion;
	}

	public void setFhModificacion(Date fhModificacion) {
		this.fhModificacion = fhModificacion;
	}

}
